package com.choosefine.it.worker.dao;

import java.util.List;
import java.util.Map;

import com.choosefine.it.worker.model.WorkDetailInfo;
import com.choosefine.it.worker.model.WorkerFavoriteWork;
import com.choosefine.it.worker.model.WorkerHistoryInfo;
import com.choosefine.it.worker.model.WorkerItemsRelation;
import com.github.pagehelper.Page;

public interface MyWorksManagerMapper {
	
	/**
	 * 根据当前登录人，查看工人收藏的 已经发布的工作
	 * 
	 * @auth liaozhanggen 2016-11-19 下午5:37:17
	 */
	Page<WorkerFavoriteWork> queryFavoriteWork(Map map);
	
	/**
	 * 根据当前登录人， 收藏  已经发布的工作
	 * 
	 * @return
	 */
	int insertFavoriteWork(Map<String, Object> param);
	
	/**
	 * 根据当前登录人，查看历史的已经工作过的
	 * 
	 * @param
	 * @return
	 */
	String queryHistoryWork(String userCode);

	/**
	 * 根据 当前工人，查询工人工作评论结果集 
	 * 
	 * @return
	 */
//	Page<WorksAppraise> queryWorkComment(Map<String, Object> param);
	
	/**
	 * 维护保存工人工作评论入口 
	 * 
	 * @return
	 */
//	int insertWorkComment(WorkerCommentDTO workerCollectionDTO);
	
	/**
	 * 失效 工人已经收藏的班组发布的招工信息
	 * 
	 * @auth liaozhanggen 2016-11-19 下午6:14:54
	 */
	int modifyFavoriteWorkStatus(Map<String, Object> param);
	
	/**
	 * 从控制台-添加工人与班组、项目、工种的关系-批量
	 * 
	 * @auth liaozhanggen 2016-11-21 下午8:13:41
	 */
	int addBatchWorkerItemsRelation(List<WorkerItemsRelation> wItemsRelations);
	
	/**
	 * 查询 以当前人有关系的工作 列表
	 * 
	 * @auth liaozhanggen 2016-11-22 下午6:04:21
	 */
	Page<WorkerItemsRelation> queryWorkerItemsRelationPageByUCode(String userCode);
	
	/**
	 * 查询工人项目的历史工作记录情况
	 * 
	 * @auth liaozhanggen 2016-12-1 下午3:00:49
	 */
	Page<WorkerHistoryInfo> queryWorkerHistoryWorkInfo(String userCode);
	
	/**
	 * 根据 工人项目的历史的要求 取员工的入职时间、结束时间、参与班组中的总工时
	 * 
	 * @auth liaozhanggen 2016-12-1 下午3:01:58
	 */
	String countWorkAttendanceCurrentMonthCalc(Map<String, Object> param);
	
	/**
	 * 查询工人所在班组的工作详情（班组、工程、月考勤信息）
	 * 
	 * @auth liaozhanggen 2016-12-2 上午11:51:19
	 */
	WorkDetailInfo queryWorkerWorkDetialInfo(String userCode, Integer relationId);

	/** 
	 * 查看当前班组发布的招工信息是否被当前工人收藏
	 * @Author：liaozhanggen
	 * @Create Date：2017年2月20日
	 * @param：....
	 * @return：Integer
	 */
	int findWorkerFavoriteTeamRecruitmentByUCode(Map<String, Object> param);
}